const app = getApp()

Page({
    data: {
        config: app.globalData.config,
        title: '',
        content: '',
        type: '图文',
        images: [],
        wordImage: false,
        addSection: true,
        placeholderTitle: '填写标题',
        placeholderContent: '添加正文',
        showPartitionInfo: false, // 是否显示分区信息
        partitionData: [],
        selectedPartition: {} // 用户选择的分区名称
    },

    onLoad() {
        app.initPage()
            .then(res => {
                this.partitionDataGet();
            })
    },
    onShow() {

    },
    partitionDataGet() {
        app.api.partitionDataGet()
            .then(res => {
                let partitionData = res.rows
                this.setData({
                    partitionData: partitionData
                })
            })
    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {
        return {
            title: '分享发帖',
            path: '/pages/forum/index'
        };
    },

    // 添加图片
    // 添加图片
    addImage() {
        wx.chooseImage({
            count: 1, // 默认9
            sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图，默认二者都有
            sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机，默认二者都有
            success: (res) => {
                const tempFilePaths = res.tempFilePaths;
                const uploadTask = wx.uploadFile({
                    url: 'http://localhost:7500/common/upload', // 上传接口地址
                    filePath: tempFilePaths[0],
                    name: 'file',
                    formData: {
                        'user': 'test' // 根据实际情况添加formData
                    },
                    success: (uploadRes) => {
                        const data = JSON.parse(uploadRes.data);
                        if (data.code === 200) {
                            this.setData({
                                images: [...this.data.images, data.url]
                            });
                            wx.showToast({
                                title: '上传成功',
                                icon: 'success'
                            });
                        } else {
                            wx.showToast({
                                title: '上传失败',
                                icon: 'none'
                            });
                        }
                    },
                    fail: () => {
                        wx.showToast({
                            title: '上传失败',
                            icon: 'none'
                        });
                    }
                });
            }
        });
    },

    // 删除图片
    deleteImage(e) {
        const index = e.currentTarget.dataset.index;
        let images = this.data.images;
        images.splice(index, 1);
        this.setData({
            images: images
        });
    },

    // 文字配图切换
    toggleWordImage() {
        this.setData({
            wordImage: !this.data.wordImage
        });
    },

    // 添加分区及话题
    toggleAddSection() {
        this.setData({
            addSection: !this.data.addSection
        });
    },

    //显示分区列表
    showPartitionList() {
        const partitionNames = this.data.partitionData.map(item => item.type); // 提取分区名称
        wx.showActionSheet({
            itemList: partitionNames,
            success: (res) => {
                if (res.tapIndex !== -1) {
                    const selectedPartition = this.data.partitionData[res.tapIndex];
                    this.setData({
                        selectedPartition: selectedPartition
                    });
                    console.log('用户选择的分区:', selectedPartition.id);
                }
            },
            fail: (err) => {
                console.error('显示分区列表失败:', err);
            }
        });
    },

    // 新增 bindTitleInput 方法，用于更新 title
    bindTitleInput: function (e) {
        console.log('Input value:', e.detail.value);
        this.setData({
            title: e.detail.value
        });
    },

    // 新增 bindContentInput 方法，用于更新 content
    bindContentInput: function (e) {
        console.log('Input value:', e.detail.value);
        this.setData({
            content: e.detail.value
        });
    },

    // 新增 publishPost 方法，用于处理发布逻辑
    publishPost: function () {
        console.log(this.data)
        const {title, content, images, selectedPartition} = this.data;

        // 检查必填项是否为空
        if (!title || !content || images.length === 0) {
            wx.showToast({
                title: '请填写完整信息',
                icon: 'none'
            });
            return;
        }

        // 构造请求参数
        const postData = {
            title: title,
            content: content,
            attachment: images.join(','),
            forumTypeId: selectedPartition.id,
            forumTypeName:selectedPartition.type,
        };

        console.log(postData)

        app.api.forumAdd(postData)
            .then(res => {
                if (res.code === 200) {
                    wx.showToast({
                        title: '发布成功',
                        icon: 'success'
                    });
                    // 清空表单数据
                    this.setData({
                        title: '',
                        content: '',
                        images: [],
                        selectedPartition: ''
                    });
                    setTimeout(
                        ()=>{
                            //跳转到首页
                            wx.switchTab({
                                url: '/pages/home/index'
                            });
                        },200
                    )


                } else {
                    wx.showToast({
                        title: '发布失败，请重试',
                        icon: 'none'
                    });
                }
            })


    }

})
